// 定义懒加载插件（通用）
// 定义好这个懒加载插件后，需要在main.ts里面全局注册，见以下两行代码
// import {lazyPlugin} from '/src/directives/imageLazy'
// app.use(lazyPlugin)
import {useIntersectionObserver} from "@vueuse/core";
export const lazyPlugin = {
    install (app:any) {
        // 懒加载指令逻辑
        app.directive('img-lazy', {
            mounted (el:any, binding:any) {
                // el: 指令绑定的那个元素 img
                // binding: binding.value  指令等于号后面绑定的表达式的值  图片url
                // console.log(el, binding.value)
                const { stop } = useIntersectionObserver(
                    el,
                    ([{ isIntersecting }]) => {
                        // console.log(isIntersecting)
                        if (isIntersecting) {
                            // 进入视口区域
                            el.src = binding.value
                            stop()
                        }
                    },
                )
            }
        })
    }
}